Implementation of voice telephone service over a worldwide data network, such as the Internet, offers advantages that are now being explored. The Internet basically comprises several large computer networks joined together over high-speed data links ranging from ISDN to T1, T3, FDDI, SONET, SMDS, OT1, etc.
A computer network is simply a collection of autonomous computers connected together to permit sharing of hardware and software resources, and to increase overall reliability. The qualifying term “local area” is usually applied to computer networks in which the computers are located in a single building or in nearby buildings, such as on a college campus or at a single corporate site. When the computers are further apart, the terms “wide area network” or “long haul network” are used, but the distinction is one of degree and the definitions sometimes overlap.
A bridge is a device that is connected to at least two LANs and serves to pass message frames or packets between LANs, such that a source station on one LAN can transmit data to a destination station on another LAN, without concern for the location of the destination. Bridges are useful and necessary network components, principally because the total number of stations on a single LAN is limited. Bridges can be implemented to operate at a selected layer of protocol of the network.
In operation, computer networks are governed by protocols, i.e., sets of conventions or rules that govern the transfer of data between computer devices. The simplest protocols define only a hardware configuration, while more complex protocols define timing, data formats, error detection and correction techniques, and software structures. Protocols generally are employed in multiple layers. A low-level physical layer protocol assures the transmission and reception of a data stream between two devices. Data packets are constructed in a data link layer. Over the physical layer, a network and transport layer protocol governs transmission of data through the network, thereby ensuring end-to-end reliable data delivery.
The Internet is a collection of networks, including Arpanet, NSFnet, regional networks such as NYsernet, local networks at a number of university and research institutions, and a number of military networks. TCP/IP protocols provide a set of services that permit users to communicate with each other across the entire Internet. The specific services that these protocols provide include file transfer, remote log-in, remote execution, remote printing, computer mail, and access to network file systems.
The basic function of the Transmission Control Protocol (TCP) is to ensure that commands and messages from an application protocol, such as computer mail, are sent to their desired destinations. TCP provides for keeping track of what is sent, and for retransmitting anything that does not get to its destination correctly. If any message is too long to be sent as one “datagram,” it will be split into multiple datagrams and TCP protocol ensures that they all arrive correctly and are reassembled for the application program at the receiving end. Since these functions are needed for many applications, they are collected into a separate protocol (TCP) rather than being part of each application.
The Internet Protocol (IP) provides a basic service to TCP: delivering datagrams to their destinations. TCP in effect hands IP a datagram with an intended destination; IP is unaware of any relationship between successive datagrams, and merely handles routing of each datagram to its destination. If the destination is a station connected to a different LAN, the IP makes use of routers to forward the message.
TCP/IP operates as a five layer protocol, the five layers generally described as follows:
Layer 5—The Application Layer. Applications such as ftp, telnet, SMTP, and NFS relate to this layer.
Layer 4—The Transport Layer. In this layer, TCP and UDP add transport data to the packet and pass it to layer 3.
Layer 3—The Internet Layer. When an action is initiated on a local host (or initiating host) that is to be performed or responded to on a remote host (or receiving host), this layer takes the package from layer 4 and adds IP information before passing it to layer 2.
Layer 2—The Network Interface Layer. This is the network device as the host, or local computer, sees it and it is through this medium that the data is passed to layer 1.
Layer 1—The Physical Layer. This is literally the Ethernet or Serial Line Interface Protocol (SLIP) itself.
At the receiving host the layers are stripped one at a time, and their information is passed to the next highest level until it again reaches the application level. If a gateway exists between the initiating and receiving hosts, the gateway takes the packet from the physical layer, passes it through a data link to the IP physical layer to continue. As a message is sent from the first host to the second, gateways pass the packet along by stripping off lower layers, readdressing the lower layer, and then passing the packet toward its final destination.
A router, like a bridge, is a device connected to two or more LANs. Unlike a bridge, however, a router operates at the network layer level, instead of the data link layer level. Addressing at the network layer level may make use of a 32-bit address field for each host, and the address field includes a unique network identifier and a host identifier within the network. Routers make use of the destination network identifier in a message to determine an optimum path from the source network to the destination network. Various routing algorithms may be used by routers to determine the optimum paths. Typically, routers exchange information about the identities of the networks to which they are connected.
When a message reaches its destination network, a data link layer address is needed to complete forwarding to the destination host. Data link layer addresses are 48 bits long and are globally unique, i.e., no two hosts, wherever located, have the same data link layer address. A protocol called ARP (address resolution protocol) obtains a data link layer address from the corresponding network layer address (the address that IP uses). Typically, each router maintains a database table from which it can look up the data link layer address, but if a destination host is not in this ARP database, the router can transmit an ARP request throughout the network that asks a host having the network layer address to supply its data link layer address in a return message. Only the addressed destination host responds, and the router is then able to insert the correct data link layer address into the message being forwarded, and to transmit the message to its final destination.
IP routing specifies that IP datagrams travel through internetworks one hop at a time (next hop routing) based on the destination address in the IP header. The entire route is not known at the outset of the journey. Instead, at each stop, the next destination (or next hop) is calculated by matching the destination address within the datagram's IP header with an entry in the current node's (typically but not always a router) routing table.
Each node's involvement in the routing process consists only of forwarding packets based on internal information resident in the router, regardless of whether the packets get to their final destination. IP routing does not alter the original datagram; the datagram source and destination addresses remain unaltered. The IP header always specifies the IP address of the original source and the IP address of the ultimate destination.
When IP executes the routing algorithm it computes a new address, the IP address of the machine/router to which the datagram should be sent next. This algorithm uses the information from the routing table entries, as well as any cached information local to the router. This new address is most likely the address of another router/gateway. If the datagram can be delivered directly (the destination network is directly attached to the current host) the new address will be the same as the destination address in the IP header. Reference is made to the above identified copending patent application Ser. No. 08/753,198 filed Nov. 21, 1996 for a further detailed description of routers with respect to IP protocol functionality.
A simplified diagram of the Internet is depicted in FIG. 1. The Internet 50 comprises Autonomous Systems (AS) which may be owned and operated by Internet Service Providers (ISPs) such as PSI, UUNET, MCI, SPRINT, etc. Three such AS/ISPs are shown in FIG. 1 at 52, 54 and 56. The Autonomous Systems (ASs) are linked by Inter-AS Connections 58, 60 and 62. Information Providers (IPs) 64 and 66, such as America Online (AOL) and Compuserve, are connected to the Internet via high speed lines 68 and 70, such as T1/T3 and the like. Information Providers generally do not have their own Internet based Autonomous Systems but have or use Dial-Up Networks such as SprintNet (X.25), DATAPAC and TYMNET.
By way of current illustration, MCI is both an ISP and an IP, Sprint is an ISP, and MicroSoft (MSN) is an IP using UUNET as an ISP. Other information providers, such as universities, are indicated in exemplary fashion at 72 and are connected to the AS/ISPs via the same type connections, here illustrated as T1 lines 74. Corporate Local Area Networks (LANs), such as those illustrated at 76 and 78, are connected through routers 80 and 82 and links shown as T1 lines 84 and 86. Laptop or PC computers 88 and 90 are representative of computers connected to the Internet via the public switched telephone network (PSTN), shown connected to the AS/ISPs via dial up links 92 and 96.
The Information Providers (IPs) are end systems that collect and market the information through their own servers. Access providers are companies such as UUNET, PSI, MCI and SPRINT which transport the information. Such companies market the usage of their networks.
Thus, in simplified fashion the Internet may be viewed as a series of gateway routers connected together with computers connected to the routers. In the addressing scheme of the Internet an address comprises four numbers separated by dots. An example would be 164.109.211.237. Each machine on the Internet has a unique number that includes one of these four numbers. In the address, the leftmost number is the highest number. By analogy this would correspond to the ZIP code in a mailing address. The first two numbers that constitute this portion of the address may indicate a network or a locale. That network is connected to the last router in the transport path. In differentiating between two computers in the same destination network only the last number field changes. In such an example the next number field 211 identifies the destination router. When the packet bearing the destination address leaves the source router it examines the first two numbers in a matrix table to determine how many hops are the minimum to get to the destination. It then sends the packet to the next router as determined from that table and the procedure is repeated. Each router has a database table that finds the information automatically. This process continues until the packet arrives at the destination computer. The separate packets that constitute a message may not travel the same path, depending on traffic load. However, they all reach the same destination and are assembled in their original sequence order in a connectionless fashion. This is in contrast to connection oriented modes such as frame relay and ATM or voice.
Connection-oriented network services require that users establish a single distinct virtual circuit before the data can be transmitted. This circuit then defines a fixed path through the network that all traffic follows during the session. Several packet switching services are connection-oriented, notably X.25 and Frame Relay. X.25 is the slower of the services, but has built-in error correction—enough for its performance not to depend on clean, high-quality optical fiber lines. Frame relay, regarded as the first generation of fast packet technology, is well-suited for high-speed bursty data communication applications.
Connectionless network services, by contrast, let each packet of a communications session take a different, independent path through the network. One example is the Switched Multimegabit Data Service (SMDS), a possible precursor to broadband ISDN. This fast-packet service supports data rates ranging from the T1 rate of 1.544 Mb/s up to 1 Gb/s. The SMDS transport system architecture is defined by IEEE 802.6 Metropolitan Area Network standards.
Software has recently been developed for use on personal computers to permit two-way transfer of real-time voice information via an Internet data link between two personal computers. In one of the directions, the sending computer converts voice signals from analog to digital format. The software facilitates data compression down to a rate compatible with modem communication via a POTS telephone line. The software also facilitates encapsulation of the digitized and compressed voice data into the TCP/IP protocol, with appropriate addressing to permit communication via the Internet. At the receiving end, the computer and software reverse the process to recover the analog voice information for presentation to the other party. Such programs permit telephone-like communication between Internet users registered with Internet Phone Servers. The book “Mastering the Internet”, Glee Cady and Pat McGregor, SYBEX Inc., Alameda, Calif., 1994, ISBN 94-69309, very briefly describes three proprietary programs said to provide real-time video and voice communications via the Internet.
The commonly assigned application Ser. Nos. 08/634,543 and 08/670,908, identified more particularly above, are concerned with providing telephone service via the Internet to users of the public telecommunications network who may not have access to a computer or separate telephone access to the Internet. Such service would be economical, especially for long distance calls, compared with the toll rates charged by long distance interexchange carriers.
The routing of real time voice telephone calls through a wide area data internetwork, such as the Internet, presents challenges to telephone company service providers with respect to providing all of the enhanced services that are currently available for calls that are routed entirely through the traditional public switched telephone network. One group of such services is based in the use of calling party identification.
For example, the caller ID service, with its various enhancements, is a telephone on-hook capability that provides a called party with information about the caller before the incoming call is answered. Conventionally, such information includes the date and time of the call and the caller's telephone number. Expanded versions provide additional information. A data message, preceded by a channel seizure signal, is sent in conjunction with the ringing signal from the central office to the called party during the silent interval after the first 20-Hz, 2-second ringing phase. To perform these functions, the central office must have available the calling party information.
Other services involve various subscriber options to a called party who has not answered a call by reason, for example, of the line being in a busy condition at the time of the call or there being no answer by the called party. By later dialing a particular code of DTMF keys, a party at the called subscriber line station may obtain the identity of the last caller or may have the number of the last caller automatically dialed (known as “return call”). These services also require that the calling party identification information for the last call be available to the central office. The term “caller ID services,” as used hereinafter throughout this disclosure is intended to refer to these various services, briefly described above.
A problem with earlier proposed voice Internet service systems is the inability to provide the destination public switched telephone network the appropriate caller identification information inasmuch as calls are routed from an external network to the destination public switched telephone network. With current implementations, a gateway router, i.e., the node in the Internet that initiates connection of a call to the destination PSTN, would be identified as the calling party source. Caller information identification services would not provide actual caller information under these conditions; instead, the called party would be subject to receiving useless information. In the return call service example, dialing of the appropriate code would result in a call placed to the gateway router as a final destination. The purpose of return call, of course, is to establish connection to the last caller, by whatever communication path, not necessarily to establish connection with the Internet.